package com.service.admin;

import com.entity.ErrorLog;
import com.entity.LoginHistory;
import com.entity.RegisterHistory;
import com.entity.VisitHistory;

import java.util.List;

/**
 * 管理员关于日志服务的接口
 *
 * 
 */
public interface AdminLogService {
  /**
   * 获取注册记录
   *
   * @param pageSize 页大小
   * @param pageIndex 页索引
   * @return 对应页的注册记录
   */
  List<RegisterHistory> getRegisterHistory(int pageSize, int pageIndex);

  /**
   * 获取第pageIndex页的网页浏览记录，页大小为pageIndex
   *
   * @param pageSize 页大小
   * @param pageIndex 页索引(从0开始)
   * @return 对应的网页浏览记录历史
   */
  List<VisitHistory> getVisitHistory(int pageSize, int pageIndex);

  /**
   * 获取登录记录
   *
   * @param pageSize 页大小
   * @param pageIndex 页索引
   * @return 对应页的登录记录
   */
  List<LoginHistory> getLoginHistory(int pageSize, int pageIndex);

  /**
   * 获取错误日志
   *
   * @param pageSize 页大小
   * @param pageIndex 页索引
   * @return 对应页的错误日志记录
   */
  List<ErrorLog> getErrorHistory(int pageSize, int pageIndex);

  /** 将编号为dailyId的错误日志设置为已查看 */
  int setErrorVisited(int dailyId);

  /**
   * 获取某个月的每日访问量（返回)
   *
   * @param yearMonth 月份 格式为 2021-12
   * @return 长度为31的数组，表示对应月份每天的访问量
   */
  int[] getPerDayVisit(String yearMonth);

  /**
   * 获取在给定时间段内每个小时的所有天的网页个数（)
   *
   * @param startDate 开始时间
   * @param endDate 结束时间
   * @return 返回长度为24的数组，表示对应日期内各小时内的访问量和
   */
  int[] getPerHourVisit(String startDate, String endDate);

  /**
   * 获取某个月的每日登录量（返回)
   *
   * @param yearMonth 月份 格式为 2021-12
   * @return 长度为31的数组，表示对应月份每天的登录量
   */
  int[] getPerDayLogin(String yearMonth);

  /**
   * 获取某个月的每日注册量（返回)
   *
   * @param yearMonth 月份 格式为 2021-12
   * @return 长度为31的数组，表示对应月份每天的注册量
   */
  int[] getPerDayRegister(String yearMonth);
}
